Software delivery comprises activities or techniques for making software available to a user. A typical software delivery format includes selling a license for use of software by a software vendor to an end user. The software vendor may provide support to run the software, according to various terms and conditions of the license.
SaaS is a software delivery model that handles multiple user requirements by delivering software as a service to multiple users. The software vendor owns and maintains the required hardware and software to provide the service. Typically, the software vendor provides the service to users on a subscription basis, i.e., users can pay a subscription fee for the software, which runs on the software vendor's server. The users are referred to as tenants, since they subscribe to the service provided by the software vendor.
Generally, software vendors serve multiple tenants by deploying a separate software application for each tenant. The copy provided to a user includes modifications according to the requirements of the tenants. The modifications may include changes in custom extension code, custom processes, custom data extensions, and so forth. In a typical scenario, when multiple tenants are provided with separate software applications, an update in the software has to be distributed and configured for each tenant. Additionally, to implement a modification in the software, the software has to be modified and then redistributed. Further, the software needs to be configured for each tenant individually. Moreover, various organizations require an in-house SaaS Model, which may support multi-tenancy.
Consequently, there is a need for a system and method for enabling a multi-tenant and efficient SaaS application which can be deployed without necessitating individual configuration of software for each tenant. Further, the SaaS application should also address the customization requirements of the SaaS model.